Hardware compilation for high performance Java processors
نویسندگان
چکیده
High performance on Java applications running on server and desktop machines requires fast execution of Java bytecodes. Such performance can be achieved by Just-In-Time (JIT) compilers, which translate the stack-based bytecodes into register-based machine code on demand. But one crucial problem in Java JIT compilation is the compilation time, which increases the total execution time of an application. So it is necessary to reduce the JIT compilation time as much as possible. In this paper we propose a front-end hardware compilation pipeline that performs the compilation of bytecodes into native machine code on-the-fly in hardware and pass the compiled code to a backend native processor for execution. The bytecodes are translated into three-address intermediate representation form, by mimicking the stack operations, before performing a series of optimizations in hardware. The optimized threeaddress codes are used for code generation and architectural register allocation and then placed in a cache for execution by the backend native processor. A micro-architecture of hardware compilation pipeline is presented.
منابع مشابه
A Exploring Single and Multi-Level JIT Compilation Policy for Modern Machines1
Dynamic or Just-in-Time (JIT) compilation is essential to achieve high-performance emulation for programs written in managed languages, such as Java and C#. It has been observed that a conservative JIT compilation policy is most effective to obtain good runtime performance without impeding application progress on single-core machines. At the same time, it is often suggested that a more aggressi...
متن کاملTime-Predictable Java Dynamic Compilation on Multicore Processors
Java has been increasingly used in programming for real-time systems. However, some of Java’s features such as automatic memory management and dynamic compilation are harmful to time predictability. If these problems are not solved properly then it can fundamentally limit the usage of Java for real-time systems, especially for hard real-time systems that require very high time predictability. I...
متن کاملOptimizing Java Bytecode for Embedded Systems
Modern Java Virtual Machines (JVM) for desktop and server computers use just-in-time (JIT) compilation to increase their performance. For embedded Java processors, JIT usually is not feasable. Therefore the java bytecode needs to be optimized for a specific platform ahead-of-time. To generate optimized bytecode for the JOP Java processor several existing tools were compared. In order to impleme...
متن کاملA New Idiom Recognition Framework for Exploiting Accelerators
Modern processors support hardware-assist instructions (such as TRT and TROT instructions on IBM zSeries) to accelerate certain functions such as delimiter search and character conversion. Such special instructions have often been used in high performance libraries, but they have not been exploited well in optimizing compilers except for some limited cases. We propose a new idiom recognition te...
متن کاملUsing Hardware Counters To Improve Dynamic Compilation
In this paper, we describe our project to explore the use of hardware counters to improve triggering techniques for runtime dynamic code recompilation. The Intel Open Runtime Platform (ORP) was chosen as the target Just In Time (JIT) compilation-capable Java Virtual Machine (JVM). The performance counter library (PCL) implemented by Rudolf Berrendorf et al. was used to retrieve real-time micro-...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002